

import { FObject } from "../../../[框架]/Core/模型/FObject";
import { TaskManager } from "../Controller/TaskManager";
import TaskRecord from "../Controller/TaskRecord";

// [{ _index: "znkfr9fsqketzpvhjmxb12pxn", ad_task_count: 10, ad_task_name: "大礼包1" }, { _index: "rdl4gi4rshyx71d0bjc28tv3u", ad_task_count: 99, ad_task_name: "大礼包2" }]

export default class TaskVO extends FObject implements IRewardTask {


    _index: string = "znkfr9fsqketzpvhjmxb12pxn"; //表示任务唯一标识 加上当天时间做key存储判断当天此任务是否完成
    ad_task_count: number = 1; //表示用户需要看几个广告，
    ad_task_name: string = "大礼包1"; //表示任务名称  

    static readonly STORAGE_KEY = 'task';

    get m_key() {
        return `${TaskVO.STORAGE_KEY}_${this._index}`;
    }

    get m_finishCount() {
        let value = TaskRecord.getTodayViewCount(this._index);
        return value;
    }

    get m_status(): "已完成" | "进行中" {
        return this.m_finishCount >= this.ad_task_count ? "已完成" : "进行中";
    }

    get m_task_id() {
        return this._index;
    }

    get m_InCD() {
        return TaskManager.caleCDTime(this) > 0;
    }

    
}

/** 任务奖励项接口 */
/*字段reward_task表示任务数组，
数组对象里面的字段ad_task_count表示用户需要看几个广告，
数组对象里面的_index可以做本地存储，
用_index拼接当天时间做key存储判断当天此任务是否完成
*/
interface IRewardTask {
    /** 任务唯一标识 */
    _index: string;
    /** 需要观看的广告数量 */
    ad_task_count: number;
    /** 任务名称 */
    ad_task_name: string;
    m_task_id: string;
}
